In a processor, the module that reads and executes instructions is referred to as a central processing unit (CPU). Each CPU thus includes a processing “core” in that it is the core unit that executes the instructions. A modern device such as a cellular phone may include a number of embedded processors in its integrated circuits such as an application processor or a digital signal processor (DSP). Although the processing capability of such embedded processors continues to grow considerably, their power consumption is becoming a leading design constraint. Users desire high performance but achieving that goal is at odds with keeping power consumption low. To meet the conflicting goals of high performance and low power consumption, it is known to provide two or more processor cores within a single processor. One processor core is designed for high performance at the cost of high power consumption whereas a remaining core is designed for low power consumption at the cost of low performance. This solution is commonly referred to as a “Big Little” design. Having both cores allows the operating system to use the low power core during idle times or periods of little processor demand. The operating system can then switch to the high performance core during periods of high processor demand.
The high performance core comprises transistors having relatively low voltage thresholds (low-Vt) because low-Vt transistors can be switched on and off at the high switching speeds necessary to achieve high performance The high performance core may thus also be denoted as a low-Vt core. But the leakage current for low-Vt transistors is markedly increased as compared to high threshold voltage (high-Vt) transistors. Thus, the low speed core uses high-Vt transistors to decrease the leakage current and thus decrease the power consumption. The low speed core may thus be also referred to as a low power high-Vt core. The high-Vt transistors have relatively slow switching speeds, which leads to the decreased performance for the high-Vt core.
There are several problems with using both a high-Vt core and a low-Vt core. For example, the duplicate cores require substantial die area, which increases cost. In addition, the powering down of one core and the powering up of the other core requires substantial overhead and time, which lowers performance and demands power. A system that frequently switches between cores would thus be inefficient and sub-optimal. Therefore, it is conventional to design the operating system to remain on the low power core for short workloads that could instead be performed by the high performance core but for the switching overhead. A multi-core processor is thus stymied from taking advantage of its capabilities in such circumstances.
Accordingly, there is a need in the art for improved processor designs that can achieve high performance while minimizing power consumption.